package com.micro.modual.mapper;


import com.micro.core.frame.mapper.BasicsMapper;
import com.micro.modual.entity.SystemElement;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
*  <h1></h1>
 * @author levelcoder
 * @version V1.0.0
 * @email LevelCoder@126.com
 * @date 2020-08-04 00:11:10
 */
public interface SystemElementMapper extends BasicsMapper<SystemElement>{


    /**
     * <h2>根据菜单编号查询元素信息</h2>
     * @param menuCode  菜单编号
     * @return {@link SystemElement} 元素信息
     */
    List<SystemElement> findSystemElementList(@Param("menuCode") String menuCode);


    /**
     * <h2>根据元素名称,菜单编号查询元素数量</h2>
     * @param elementName   元素名称
     * @param menuCode      菜单编号
     * @return
     */
    int findElementExist(@Param("elementName") String elementName, @Param("menuCode") String menuCode);

    /**
     * <h2>根据元素授权编号,菜单编号查询元素数量</h2>
     * @param authCode   授权编号
     * @param menuCode   菜单编号
     * @return
     */
    int findElementAuthCodeExist(@Param("authCode") String authCode, @Param("menuCode")String menuCode);

    /**
     * <h2>根据菜单编号删除元素信息</h2>
     * @param menuCode 菜单编号
     */
    void deleteByMenuCode(@Param("menuCode") String menuCode);

    /**
     * <h2>获取该用户拥有的按钮权限</h2>
     * @param userCode
     * @return
     */
    List<SystemElement> findUserAuthorityElementByUserCode(@Param("userCode") String userCode);

}
